package cn.anlucky.admin.generation.povo;

import com.baomidou.mybatisplus.generator.config.builder.CustomFile;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;


/**
 * 代码生成PO对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GenerationPo {

    public static final String ENTITY = "entity";
    public static final String MAPPER = "mapper";
    public static final String MAPPER_XML = "mapperXml";
    public static final String SERVICE = "service";
    public static final String SERVICE_IMPL = "serviceImpl";
    public static final String CONTROLLER = "controller";
    public static final String VUE = "vue";
    public static final String JS = "js";
    public static final String SQL = "sql";

    /**
     * 数据库连接地址
     */
    private String dbUrl;

    /**
     * 数据库用户名
     */
    private String dbUserName;

    /**
     * 数据库密码
     */
    private String dbPassword;

    /**
     * 表名
     */
    private List<String> tableNames;
    /**
     * 父包名
     */
    private String parentPackage;
    /**
     * 模块名称
     */
    private String moduleName;
    /**
     * 作者
     */
    private String author;
    /**
     * 输出目录
     */
    private String outputDir;
    /**
     * 自动填充创建时间字段名称
     */
    private String createTimeField;
    /**
     * 自动填充修改时间字段名称
     */
    private String updateTimeField;
    /**
     * 自动填充创建人字段名称
     */
    private String createByField;
    /**
     * 自动填充修改人字段名称
     */
    private String updateByField;
    /**
     * 逻辑删除字段名称
     */
    private String deleteFlagField;
    /**
     * 实体类所在包名
     */
    private String entityPackage;
    /**
     * mapper接口所在包名
     */
    private String mapperPackage;
    /**
     * mapper.xml文件所在包名
     */
    private String mapperXmlPackage;
    /**
     * service所在包名
     */
    private String servicePackage;
    /**
     * service实现类所在包名
     */
    private String serviceImplPackage;
    /**
     * controller所在包名
     */
    private String controllerPackage;
    /**
     * 实体类模板路径
     */
    private String entityTemplate;
    /**
     * mapper接口模板路径
     */
    private String mapperTemplate;
    /**
     * mapper.xml模板路径
     */
    private String mapperXmlTemplate;
    /**
     * service模板路径
     */
    private String serviceTemplate;
    /**
     * service实现类模板路径
     */
    private String serviceImplTemplate;
    /**
     * controller模板路径
     */
    private String controllerTemplate;
    /**
     * 其他自定义模板名称
     */
    private List<CustomFile> otherTemplates;
    /**
     * 其他自定义模板参数
     */
    private Map<String,Object>otherTemplateParams;
}
